[INFO] cloning repository https://github.com/zasekle/logical_cpu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zasekle/logical_cpu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzasekle%2Flogical_cpu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzasekle%2Flogical_cpu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 444acaee8f80a5ee4f66c20c76bb0a3e29fe962e
[INFO] fixing zasekle/logical_cpu against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzasekle%2Flogical_cpu" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zasekle/logical_cpu
[INFO] finished tweaking git repo https://github.com/zasekle/logical_cpu
[INFO] tweaked toml for git repo https://github.com/zasekle/logical_cpu written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zasekle/logical_cpu on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zasekle/logical_cpu already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6
[INFO] running `Command { std: "docker" "start" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]     Checking gimli v0.28.0
[INFO] [stderr]     Checking memchr v2.6.3
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking object v0.32.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking logical_cpu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/run_circuit.rs (1 fix)
[INFO] [stderr]        Fixed src/logic/foundations.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/run_circuit.rs:355:45
[INFO] [stdout]     |
[INFO] [stdout] 264 |                               let popped_element;
[INFO] [stdout]     |                                   --------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `popped_element` calls a custom destructor
[INFO] [stdout]     |                                   `popped_element` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 269 |                                   let mut thread_pool_lists = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 279 |                                   let front_gate = thread_pool_lists.gates.pop_front();
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `front_gate` calls a custom destructor
[INFO] [stdout]     |                                       `front_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 282 |                                       let gate_id = gate.gate.lock().unwrap().get_unique_id().clone();
[INFO] [stdout]     |                                                     -------------------------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 283 |                                       let gate_num_children = gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                               -------------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | /                                     thread_pool_lists.processing_set.insert(
[INFO] [stdout] 325 | |                                         gate_id,
[INFO] [stdout] 326 | |                                         ProcessingGate {
[INFO] [stdout] 327 | |                                             parent_id: gate.parent_id.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |                                         },
[INFO] [stdout] 331 | |                                     );
[INFO] [stdout]     | |                                     -
[INFO] [stdout]     | |                                     |
[INFO] [stdout]     | |_____________________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 338 |                               if let Some(running_gate) = popped_element {
[INFO] [stdout]     |                                           ------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `running_gate` calls a custom destructor
[INFO] [stdout]     |                                           `running_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 341 |                                   let element_num_children = running_gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                              ---------------------------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 |                                   let mut clock_tick_inputs = Vec::new();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `clock_tick_inputs` calls a custom destructor
[INFO] [stdout]     |                                       `clock_tick_inputs` will be dropped later as of Edition 2024
[INFO] [stdout] 346 |                                   let mut next_gates = Vec::new();
[INFO] [stdout]     |                                       --------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `next_gates` calls a custom destructor
[INFO] [stdout]     |                                       `next_gates` will be dropped later as of Edition 2024
[INFO] [stdout] 347 |                                   let mut next_gates_set = HashSet::new();
[INFO] [stdout] 348 |                                   let mut multiple_valid_signals = Vec::new();
[INFO] [stdout]     |                                       --------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `multiple_valid_signals` calls a custom destructor
[INFO] [stdout]     |                                       `multiple_valid_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 353 |                                       let fetched_signals =
[INFO] [stdout]     |                                           ---------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `fetched_signals` calls a custom destructor
[INFO] [stdout]     |                                           `fetched_signals` will be dropped later as of Edition 2024
[INFO] [stdout] 354 |                                           if large_gate_completed {
[INFO] [stdout] 355 |                                               running_gate.gate.lock().unwrap().fetch_output_signals_no_calculate()
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                                               up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 356 |                                           } else {
[INFO] [stdout]     |                                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 360 |                                       let is_input_gate = running_gate.gate.lock().unwrap().is_input_gate();
[INFO] [stdout]     |                                                           ---------------------------------
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 361 |                                       let gate_tag = running_gate.gate.lock().unwrap().get_tag();
[INFO] [stdout]     |                                                      ---------------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                                      `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                                               for gate_output_state in output_states {
[INFO] [stdout]     |                                                   -----------------    -------------
[INFO] [stdout]     |                                                   |                    |
[INFO] [stdout]     |                                                   |                    `iter` calls a custom destructor
[INFO] [stdout]     |                                                   |                    `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   |                    this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                   |                    `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   `gate_output_state` calls a custom destructor
[INFO] [stdout]     |                                                   `gate_output_state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 411 |                                                       GateOutputState::Connected(next_gate_info) => {
[INFO] [stdout]     |                                                                                  --------------
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  `next_gate_info` calls a custom destructor
[INFO] [stdout]     |                                                                                  `next_gate_info` will be dropped later as of Edition 2024
[INFO] [stdout] 412 |                                                           let next_gate = next_gate_info.gate.clone();
[INFO] [stdout]     |                                                               ---------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 419 |                                                           let mut mutable_next_gate = next_gate.lock().unwrap();
[INFO] [stdout]     |                                                               ---------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `mutable_next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `mutable_next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 508 |                                       for input_gate in input_gates.into_iter() {
[INFO] [stdout]     |                                           ----------    -----------------------
[INFO] [stdout]     |                                           |             |
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                           |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                           |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `input_gate` calls a custom destructor
[INFO] [stdout]     |                                           `input_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 511 |                                           let gate_id = input_gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                         --------------------------
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                                                         `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 516 |                                               let number_children_in_gate = input_gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                                             --------------------------
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                                   let mut thread_pool_lists_guard = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists_guard` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists_guard` will be dropped later as of Edition 2024
[INFO] [stdout] 591 |
[INFO] [stdout] 592 |                                   let gate_id = running_gate.gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                 ---------------------------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                                                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 617 | /                                                     thread_pool_lists.processing_set.remove(
[INFO] [stdout] 618 | |                                                         &gate_id
[INFO] [stdout] 619 | |                                                     );
[INFO] [stdout]     | |                                                     -
[INFO] [stdout]     | |_____________________________________________________|
[INFO] [stdout]     | |_____________________________________________________this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 706 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 707 | |                                                 &gate_id
[INFO] [stdout] 708 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                               `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 720 | |                                                 &gate_id
[INFO] [stdout] 721 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                               `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 801 | |                                 let processing_set_len = thread_pool_lists_clone.lock().unwrap().processing_set.len();
[INFO] [stdout]     | |                                                          ---------------------------------------
[INFO] [stdout]     | |                                                          |
[INFO] [stdout]     | |                                                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     | |                                                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 802 | |                                 let waiting_to_pro_set_len = thread_pool_lists_clone.lock().unwrap().waiting_to_be_processed_set.len();
[INFO] [stdout]     | |                                                              ---------------------------------------
[INFO] [stdout]     | |                                                              |
[INFO] [stdout]     | |                                                              this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     | |                                                              `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 803 | |
[INFO] [stdout] 804 | |                                 println!("processing_set_len {processing_set_len} waiting_to_pro_set_len {waiting_to_pro_set_len} parental_tree {:#?}", thread_pool_lists_clone.lock().unwrap().pa...
[INFO] [stdout]     | |                                                                                                                                                         ---------------------------------------
[INFO] [stdout]     | |                                                                                                                                                         |
[INFO] [stdout]     | |                                                                                                                                                         this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     | |                                                                                                                                                         `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `popped_element` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `thread_pool_lists` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `front_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `running_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `clock_tick_inputs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gates` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `multiple_valid_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `fetched_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `iter` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `gate_output_state` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate_info` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `mutable_next_gate` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `thread_pool_lists_guard` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/run_circuit.rs:357:45
[INFO] [stdout]     |
[INFO] [stdout] 264 |                               let popped_element;
[INFO] [stdout]     |                                   --------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `popped_element` calls a custom destructor
[INFO] [stdout]     |                                   `popped_element` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 269 |                                   let mut thread_pool_lists = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 279 |                                   let front_gate = thread_pool_lists.gates.pop_front();
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `front_gate` calls a custom destructor
[INFO] [stdout]     |                                       `front_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 282 |                                       let gate_id = gate.gate.lock().unwrap().get_unique_id().clone();
[INFO] [stdout]     |                                                     -------------------------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 283 |                                       let gate_num_children = gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                               -------------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | /                                     thread_pool_lists.processing_set.insert(
[INFO] [stdout] 325 | |                                         gate_id,
[INFO] [stdout] 326 | |                                         ProcessingGate {
[INFO] [stdout] 327 | |                                             parent_id: gate.parent_id.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |                                         },
[INFO] [stdout] 331 | |                                     );
[INFO] [stdout]     | |                                     -
[INFO] [stdout]     | |                                     |
[INFO] [stdout]     | |_____________________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 338 |                               if let Some(running_gate) = popped_element {
[INFO] [stdout]     |                                           ------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `running_gate` calls a custom destructor
[INFO] [stdout]     |                                           `running_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 341 |                                   let element_num_children = running_gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                              ---------------------------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 |                                   let mut clock_tick_inputs = Vec::new();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `clock_tick_inputs` calls a custom destructor
[INFO] [stdout]     |                                       `clock_tick_inputs` will be dropped later as of Edition 2024
[INFO] [stdout] 346 |                                   let mut next_gates = Vec::new();
[INFO] [stdout]     |                                       --------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `next_gates` calls a custom destructor
[INFO] [stdout]     |                                       `next_gates` will be dropped later as of Edition 2024
[INFO] [stdout] 347 |                                   let mut next_gates_set = HashSet::new();
[INFO] [stdout] 348 |                                   let mut multiple_valid_signals = Vec::new();
[INFO] [stdout]     |                                       --------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `multiple_valid_signals` calls a custom destructor
[INFO] [stdout]     |                                       `multiple_valid_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 353 |                                       let fetched_signals =
[INFO] [stdout]     |                                           ---------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `fetched_signals` calls a custom destructor
[INFO] [stdout]     |                                           `fetched_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 357 |                                               running_gate.gate.lock().unwrap().fetch_output_signals_calculate()
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                                               up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 358 |                                           };
[INFO] [stdout]     |                                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 359 |
[INFO] [stdout] 360 |                                       let is_input_gate = running_gate.gate.lock().unwrap().is_input_gate();
[INFO] [stdout]     |                                                           ---------------------------------
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 361 |                                       let gate_tag = running_gate.gate.lock().unwrap().get_tag();
[INFO] [stdout]     |                                                      ---------------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                                      `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                                               for gate_output_state in output_states {
[INFO] [stdout]     |                                                   -----------------    -------------
[INFO] [stdout]     |                                                   |                    |
[INFO] [stdout]     |                                                   |                    `iter` calls a custom destructor
[INFO] [stdout]     |                                                   |                    `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   |                    this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                   |                    `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   `gate_output_state` calls a custom destructor
[INFO] [stdout]     |                                                   `gate_output_state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 411 |                                                       GateOutputState::Connected(next_gate_info) => {
[INFO] [stdout]     |                                                                                  --------------
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  `next_gate_info` calls a custom destructor
[INFO] [stdout]     |                                                                                  `next_gate_info` will be dropped later as of Edition 2024
[INFO] [stdout] 412 |                                                           let next_gate = next_gate_info.gate.clone();
[INFO] [stdout]     |                                                               ---------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 419 |                                                           let mut mutable_next_gate = next_gate.lock().unwrap();
[INFO] [stdout]     |                                                               ---------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `mutable_next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `mutable_next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 508 |                                       for input_gate in input_gates.into_iter() {
[INFO] [stdout]     |                                           ----------    -----------------------
[INFO] [stdout]     |                                           |             |
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                           |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                           |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `input_gate` calls a custom destructor
[INFO] [stdout]     |                                           `input_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 511 |                                           let gate_id = input_gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                         --------------------------
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                                                         `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 516 |                                               let number_children_in_gate = input_gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                                             --------------------------
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                                   let mut thread_pool_lists_guard = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists_guard` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists_guard` will be dropped later as of Edition 2024
[INFO] [stdout] 591 |
[INFO] [stdout] 592 |                                   let gate_id = running_gate.gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                 ---------------------------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                                                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 617 | /                                                     thread_pool_lists.processing_set.remove(
[INFO] [stdout] 618 | |                                                         &gate_id
[INFO] [stdout] 619 | |                                                     );
[INFO] [stdout]     | |                                                     -
[INFO] [stdout]     | |_____________________________________________________|
[INFO] [stdout]     | |_____________________________________________________this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 706 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 707 | |                                                 &gate_id
[INFO] [stdout] 708 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                               `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 720 | |                                                 &gate_id
[INFO] [stdout] 721 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                               `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 801 | |                                 let processing_set_len = thread_pool_lists_clone.lock().unwrap().processing_set.len();
[INFO] [stdout]     | |                                                          ---------------------------------------
[INFO] [stdout]     | |                                                          |
[INFO] [stdout]     | |                                                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     | |                                                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 802 | |                                 let waiting_to_pro_set_len = thread_pool_lists_clone.lock().unwrap().waiting_to_be_processed_set.len();
[INFO] [stdout]     | |                                                              ---------------------------------------
[INFO] [stdout]     | |                                                              |
[INFO] [stdout]     | |                                                              this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     | |                                                              `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 803 | |
[INFO] [stdout] 804 | |                                 println!("processing_set_len {processing_set_len} waiting_to_pro_set_len {waiting_to_pro_set_len} parental_tree {:#?}", thread_pool_lists_clone.lock().unwrap().pa...
[INFO] [stdout]     | |                                                                                                                                                         ---------------------------------------
[INFO] [stdout]     | |                                                                                                                                                         |
[INFO] [stdout]     | |                                                                                                                                                         this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     | |                                                                                                                                                         `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `popped_element` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `thread_pool_lists` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `front_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `running_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `clock_tick_inputs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gates` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `multiple_valid_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `fetched_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `iter` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `gate_output_state` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate_info` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `mutable_next_gate` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `thread_pool_lists_guard` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:132:36
[INFO] [stdout]     |
[INFO] [stdout] 132 |         println!("RAM_TIME: {:?}", RAM_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:133:48
[INFO] [stdout]     |
[INFO] [stdout] 133 |         println!("CONTROL_SECTION_TIME: {:?}", CONTROL_SECTION_TIME);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:134:36
[INFO] [stdout]     |
[INFO] [stdout] 134 |         println!("ALU_TIME: {:?}", ALU_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]  --> src/globals.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         CLOCK_TICK_NUMBER.clone()
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/run_circuit.rs:355:45
[INFO] [stdout]     |
[INFO] [stdout] 264 |                               let popped_element;
[INFO] [stdout]     |                                   --------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `popped_element` calls a custom destructor
[INFO] [stdout]     |                                   `popped_element` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 269 |                                   let mut thread_pool_lists = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 279 |                                   let front_gate = thread_pool_lists.gates.pop_front();
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `front_gate` calls a custom destructor
[INFO] [stdout]     |                                       `front_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 282 |                                       let gate_id = gate.gate.lock().unwrap().get_unique_id().clone();
[INFO] [stdout]     |                                                     -------------------------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 283 |                                       let gate_num_children = gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                               -------------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | /                                     thread_pool_lists.processing_set.insert(
[INFO] [stdout] 325 | |                                         gate_id,
[INFO] [stdout] 326 | |                                         ProcessingGate {
[INFO] [stdout] 327 | |                                             parent_id: gate.parent_id.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |                                         },
[INFO] [stdout] 331 | |                                     );
[INFO] [stdout]     | |                                     -
[INFO] [stdout]     | |                                     |
[INFO] [stdout]     | |_____________________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 338 |                               if let Some(running_gate) = popped_element {
[INFO] [stdout]     |                                           ------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `running_gate` calls a custom destructor
[INFO] [stdout]     |                                           `running_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 341 |                                   let element_num_children = running_gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                              ---------------------------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 |                                   let mut clock_tick_inputs = Vec::new();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `clock_tick_inputs` calls a custom destructor
[INFO] [stdout]     |                                       `clock_tick_inputs` will be dropped later as of Edition 2024
[INFO] [stdout] 346 |                                   let mut next_gates = Vec::new();
[INFO] [stdout]     |                                       --------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `next_gates` calls a custom destructor
[INFO] [stdout]     |                                       `next_gates` will be dropped later as of Edition 2024
[INFO] [stdout] 347 |                                   let mut next_gates_set = HashSet::new();
[INFO] [stdout] 348 |                                   let mut multiple_valid_signals = Vec::new();
[INFO] [stdout]     |                                       --------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `multiple_valid_signals` calls a custom destructor
[INFO] [stdout]     |                                       `multiple_valid_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 353 |                                       let fetched_signals =
[INFO] [stdout]     |                                           ---------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `fetched_signals` calls a custom destructor
[INFO] [stdout]     |                                           `fetched_signals` will be dropped later as of Edition 2024
[INFO] [stdout] 354 |                                           if large_gate_completed {
[INFO] [stdout] 355 |                                               running_gate.gate.lock().unwrap().fetch_output_signals_no_calculate()
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                                               up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 356 |                                           } else {
[INFO] [stdout]     |                                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 360 |                                       let is_input_gate = running_gate.gate.lock().unwrap().is_input_gate();
[INFO] [stdout]     |                                                           ---------------------------------
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 361 |                                       let gate_tag = running_gate.gate.lock().unwrap().get_tag();
[INFO] [stdout]     |                                                      ---------------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                                      `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                                               for gate_output_state in output_states {
[INFO] [stdout]     |                                                   -----------------    -------------
[INFO] [stdout]     |                                                   |                    |
[INFO] [stdout]     |                                                   |                    `iter` calls a custom destructor
[INFO] [stdout]     |                                                   |                    `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   |                    this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                   |                    `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   `gate_output_state` calls a custom destructor
[INFO] [stdout]     |                                                   `gate_output_state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 411 |                                                       GateOutputState::Connected(next_gate_info) => {
[INFO] [stdout]     |                                                                                  --------------
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  `next_gate_info` calls a custom destructor
[INFO] [stdout]     |                                                                                  `next_gate_info` will be dropped later as of Edition 2024
[INFO] [stdout] 412 |                                                           let next_gate = next_gate_info.gate.clone();
[INFO] [stdout]     |                                                               ---------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 419 |                                                           let mut mutable_next_gate = next_gate.lock().unwrap();
[INFO] [stdout]     |                                                               ---------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `mutable_next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `mutable_next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 508 |                                       for input_gate in input_gates.into_iter() {
[INFO] [stdout]     |                                           ----------    -----------------------
[INFO] [stdout]     |                                           |             |
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                           |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                           |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `input_gate` calls a custom destructor
[INFO] [stdout]     |                                           `input_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 511 |                                           let gate_id = input_gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                         --------------------------
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                                                         `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 516 |                                               let number_children_in_gate = input_gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                                             --------------------------
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                                   let mut thread_pool_lists_guard = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists_guard` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists_guard` will be dropped later as of Edition 2024
[INFO] [stdout] 591 |
[INFO] [stdout] 592 |                                   let gate_id = running_gate.gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                 ---------------------------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                                                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 617 | /                                                     thread_pool_lists.processing_set.remove(
[INFO] [stdout] 618 | |                                                         &gate_id
[INFO] [stdout] 619 | |                                                     );
[INFO] [stdout]     | |                                                     -
[INFO] [stdout]     | |_____________________________________________________|
[INFO] [stdout]     | |_____________________________________________________this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 706 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 707 | |                                                 &gate_id
[INFO] [stdout] 708 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                               `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 720 | |                                                 &gate_id
[INFO] [stdout] 721 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                               `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 801 | |                                 let processing_set_len = thread_pool_lists_clone.lock().unwrap().processing_set.len();
[INFO] [stdout]     | |                                                          ---------------------------------------
[INFO] [stdout]     | |                                                          |
[INFO] [stdout]     | |                                                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     | |                                                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 802 | |                                 let waiting_to_pro_set_len = thread_pool_lists_clone.lock().unwrap().waiting_to_be_processed_set.len();
[INFO] [stdout]     | |                                                              ---------------------------------------
[INFO] [stdout]     | |                                                              |
[INFO] [stdout]     | |                                                              this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     | |                                                              `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 803 | |
[INFO] [stdout] 804 | |                                 println!("processing_set_len {processing_set_len} waiting_to_pro_set_len {waiting_to_pro_set_len} parental_tree {:#?}", thread_pool_lists_clone.lock().unwrap().pa...
[INFO] [stdout]     | |                                                                                                                                                         ---------------------------------------
[INFO] [stdout]     | |                                                                                                                                                         |
[INFO] [stdout]     | |                                                                                                                                                         this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     | |                                                                                                                                                         `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `popped_element` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `thread_pool_lists` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `front_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `running_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `clock_tick_inputs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gates` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `multiple_valid_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `fetched_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `iter` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `gate_output_state` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate_info` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `mutable_next_gate` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `thread_pool_lists_guard` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/run_circuit.rs:357:45
[INFO] [stdout]     |
[INFO] [stdout] 264 |                               let popped_element;
[INFO] [stdout]     |                                   --------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `popped_element` calls a custom destructor
[INFO] [stdout]     |                                   `popped_element` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 269 |                                   let mut thread_pool_lists = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 279 |                                   let front_gate = thread_pool_lists.gates.pop_front();
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `front_gate` calls a custom destructor
[INFO] [stdout]     |                                       `front_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 282 |                                       let gate_id = gate.gate.lock().unwrap().get_unique_id().clone();
[INFO] [stdout]     |                                                     -------------------------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 283 |                                       let gate_num_children = gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                               -------------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | /                                     thread_pool_lists.processing_set.insert(
[INFO] [stdout] 325 | |                                         gate_id,
[INFO] [stdout] 326 | |                                         ProcessingGate {
[INFO] [stdout] 327 | |                                             parent_id: gate.parent_id.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |                                         },
[INFO] [stdout] 331 | |                                     );
[INFO] [stdout]     | |                                     -
[INFO] [stdout]     | |                                     |
[INFO] [stdout]     | |_____________________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 338 |                               if let Some(running_gate) = popped_element {
[INFO] [stdout]     |                                           ------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `running_gate` calls a custom destructor
[INFO] [stdout]     |                                           `running_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 341 |                                   let element_num_children = running_gate.gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                              ---------------------------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 |                                   let mut clock_tick_inputs = Vec::new();
[INFO] [stdout]     |                                       ---------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `clock_tick_inputs` calls a custom destructor
[INFO] [stdout]     |                                       `clock_tick_inputs` will be dropped later as of Edition 2024
[INFO] [stdout] 346 |                                   let mut next_gates = Vec::new();
[INFO] [stdout]     |                                       --------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `next_gates` calls a custom destructor
[INFO] [stdout]     |                                       `next_gates` will be dropped later as of Edition 2024
[INFO] [stdout] 347 |                                   let mut next_gates_set = HashSet::new();
[INFO] [stdout] 348 |                                   let mut multiple_valid_signals = Vec::new();
[INFO] [stdout]     |                                       --------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `multiple_valid_signals` calls a custom destructor
[INFO] [stdout]     |                                       `multiple_valid_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 353 |                                       let fetched_signals =
[INFO] [stdout]     |                                           ---------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `fetched_signals` calls a custom destructor
[INFO] [stdout]     |                                           `fetched_signals` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 357 |                                               running_gate.gate.lock().unwrap().fetch_output_signals_calculate()
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                                               up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 358 |                                           };
[INFO] [stdout]     |                                           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 359 |
[INFO] [stdout] 360 |                                       let is_input_gate = running_gate.gate.lock().unwrap().is_input_gate();
[INFO] [stdout]     |                                                           ---------------------------------
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 361 |                                       let gate_tag = running_gate.gate.lock().unwrap().get_tag();
[INFO] [stdout]     |                                                      ---------------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                                      `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                                               for gate_output_state in output_states {
[INFO] [stdout]     |                                                   -----------------    -------------
[INFO] [stdout]     |                                                   |                    |
[INFO] [stdout]     |                                                   |                    `iter` calls a custom destructor
[INFO] [stdout]     |                                                   |                    `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   |                    this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                   |                    `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   `gate_output_state` calls a custom destructor
[INFO] [stdout]     |                                                   `gate_output_state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 411 |                                                       GateOutputState::Connected(next_gate_info) => {
[INFO] [stdout]     |                                                                                  --------------
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  `next_gate_info` calls a custom destructor
[INFO] [stdout]     |                                                                                  `next_gate_info` will be dropped later as of Edition 2024
[INFO] [stdout] 412 |                                                           let next_gate = next_gate_info.gate.clone();
[INFO] [stdout]     |                                                               ---------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 419 |                                                           let mut mutable_next_gate = next_gate.lock().unwrap();
[INFO] [stdout]     |                                                               ---------------------
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               `mutable_next_gate` calls a custom destructor
[INFO] [stdout]     |                                                               `mutable_next_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 508 |                                       for input_gate in input_gates.into_iter() {
[INFO] [stdout]     |                                           ----------    -----------------------
[INFO] [stdout]     |                                           |             |
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                           |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                           |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `input_gate` calls a custom destructor
[INFO] [stdout]     |                                           `input_gate` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 511 |                                           let gate_id = input_gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                         --------------------------
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                                                         `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 516 |                                               let number_children_in_gate = input_gate.lock().unwrap().num_children_gates();
[INFO] [stdout]     |                                                                             --------------------------
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                                   let mut thread_pool_lists_guard = thread_pool_lists_clone.lock().unwrap();
[INFO] [stdout]     |                                       ---------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `thread_pool_lists_guard` calls a custom destructor
[INFO] [stdout]     |                                       `thread_pool_lists_guard` will be dropped later as of Edition 2024
[INFO] [stdout] 591 |
[INFO] [stdout] 592 |                                   let gate_id = running_gate.gate.lock().unwrap().get_unique_id();
[INFO] [stdout]     |                                                 ---------------------------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                                                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 617 | /                                                     thread_pool_lists.processing_set.remove(
[INFO] [stdout] 618 | |                                                         &gate_id
[INFO] [stdout] 619 | |                                                     );
[INFO] [stdout]     | |                                                     -
[INFO] [stdout]     | |_____________________________________________________|
[INFO] [stdout]     | |_____________________________________________________this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 706 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 707 | |                                                 &gate_id
[INFO] [stdout] 708 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                               `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 719 | /                                             thread_pool_lists.processing_set.remove(
[INFO] [stdout] 720 | |                                                 &gate_id
[INFO] [stdout] 721 | |                                             );
[INFO] [stdout]     | |                                             -
[INFO] [stdout]     | |_____________________________________________|
[INFO] [stdout]     | |_____________________________________________this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                               `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 801 | |                                 let processing_set_len = thread_pool_lists_clone.lock().unwrap().processing_set.len();
[INFO] [stdout]     | |                                                          ---------------------------------------
[INFO] [stdout]     | |                                                          |
[INFO] [stdout]     | |                                                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     | |                                                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 802 | |                                 let waiting_to_pro_set_len = thread_pool_lists_clone.lock().unwrap().waiting_to_be_processed_set.len();
[INFO] [stdout]     | |                                                              ---------------------------------------
[INFO] [stdout]     | |                                                              |
[INFO] [stdout]     | |                                                              this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     | |                                                              `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 803 | |
[INFO] [stdout] 804 | |                                 println!("processing_set_len {processing_set_len} waiting_to_pro_set_len {waiting_to_pro_set_len} parental_tree {:#?}", thread_pool_lists_clone.lock().unwrap().pa...
[INFO] [stdout]     | |                                                                                                                                                         ---------------------------------------
[INFO] [stdout]     | |                                                                                                                                                         |
[INFO] [stdout]     | |                                                                                                                                                         this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     | |                                                                                                                                                         `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `popped_element` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `thread_pool_lists` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `front_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `running_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `clock_tick_inputs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gates` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `multiple_valid_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `fetched_signals` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `iter` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `gate_output_state` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate_info` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `mutable_next_gate` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_gate` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `thread_pool_lists_guard` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.23s
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:132:36
[INFO] [stdout]     |
[INFO] [stdout] 132 |         println!("RAM_TIME: {:?}", RAM_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:133:48
[INFO] [stdout]     |
[INFO] [stdout] 133 |         println!("CONTROL_SECTION_TIME: {:?}", CONTROL_SECTION_TIME);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:134:36
[INFO] [stdout]     |
[INFO] [stdout] 134 |         println!("ALU_TIME: {:?}", ALU_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]  --> src/globals.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         CLOCK_TICK_NUMBER.clone()
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: logical_cpu v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking logical_cpu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `LoggingMutexGuard` and `UsedMutex`
[INFO] [stdout]   --> src/logic/arithmetic_gates.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::shared_mutex::{LoggingMutexGuard, new_shared_mutex, SharedMutex, UsedMutex};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^                                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `extract_string_from_connected_output`
[INFO] [stdout]  --> src/run_circuit.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::logic::foundations::{connect_gates, extract_string_from_connected_output, extract_string_from_gate_output_states, GateInpu...
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logic::basic_gates::Or`
[INFO] [stdout]   --> src/run_circuit.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::logic::basic_gates::Or;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LoggingMutexGuard` and `UsedMutex`
[INFO] [stdout]   --> src/logic/arithmetic_gates.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::shared_mutex::{LoggingMutexGuard, new_shared_mutex, SharedMutex, UsedMutex};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^                                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `extract_string_from_connected_output`
[INFO] [stdout]  --> src/run_circuit.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::logic::foundations::{connect_gates, extract_string_from_connected_output, extract_string_from_gate_output_states, GateInpu...
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logic::basic_gates::Or`
[INFO] [stdout]   --> src/run_circuit.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::logic::basic_gates::Or;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signal_clone`
[INFO] [stdout]    --> src/run_circuit.rs:958:9
[INFO] [stdout]     |
[INFO] [stdout] 958 |         signal_clone: &mut Arc<CondvarWrapper>,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signal_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/run_circuit.rs:1253:13
[INFO] [stdout]      |
[INFO] [stdout] 1253 |         let mut mutable_input_gate = input_gate.lock().unwrap();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/shared_mutex.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn new_used_mutex<T>(id: i32, data: T) -> UsedMutex<T> {
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fetch_output_signals_no_calculate`, `toggle_output_printing`, `num_children_gates`, and `get_input_gates` are never used
[INFO] [stdout]    --> src/logic/foundations.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub trait LogicGate: Send {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn fetch_output_signals_no_calculate(&mut self) -> Result<Vec<GateOutputState>, GateLogicError>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn toggle_output_printing(&mut self, print_output: bool);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn num_children_gates(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 |
[INFO] [stdout] 139 |     fn get_input_gates(&self) -> Vec<SharedMutex<dyn LogicGate>>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_string_from_gate_output_states` is never used
[INFO] [stdout]    --> src/logic/foundations.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn extract_string_from_gate_output_states(connected_output: &Vec<GateOutputState>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_string_from_connected_output` is never used
[INFO] [stdout]    --> src/logic/foundations.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn extract_string_from_connected_output(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `fetch_output_signals_no_calculate_basic_gate` and `fetch_output_signals_no_calculate` are never used
[INFO] [stdout]    --> src/logic/foundations.rs:959:12
[INFO] [stdout]     |
[INFO] [stdout] 828 | impl GateLogic {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 959 |     pub fn fetch_output_signals_no_calculate_basic_gate(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 973 |     pub fn fetch_output_signals_no_calculate(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NUM_CHILDREN_GATES_FOR_LARGE_GATE` is never used
[INFO] [stdout]   --> src/run_circuit.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | static NUM_CHILDREN_GATES_FOR_LARGE_GATE: usize = 7;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondVarVariables` is never constructed
[INFO] [stdout]   --> src/run_circuit.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct CondVarVariables {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondvarWrapper` is never constructed
[INFO] [stdout]   --> src/run_circuit.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CondvarWrapper {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait`, `notify_one`, `notify_all`, `get_wait_count`, and `set_to_completed` are never used
[INFO] [stdout]   --> src/run_circuit.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl CondvarWrapper {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 35 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn wait(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn notify_one(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn notify_all(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn get_wait_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn set_to_completed(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProcessingGateStatus` is never used
[INFO] [stdout]   --> src/run_circuit.rs:76:6
[INFO] [stdout]    |
[INFO] [stdout] 76 | enum ProcessingGateStatus {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProcessingSizeOfGate` is never used
[INFO] [stdout]   --> src/run_circuit.rs:82:6
[INFO] [stdout]    |
[INFO] [stdout] 82 | enum ProcessingSizeOfGate {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WaitingSizeOfGate` is never used
[INFO] [stdout]    --> src/run_circuit.rs:117:6
[INFO] [stdout]     |
[INFO] [stdout] 117 | enum WaitingSizeOfGate {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `convert_from_processing` is never used
[INFO] [stdout]    --> src/run_circuit.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl WaitingSizeOfGate {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 126 |     fn convert_from_processing(size: &ProcessingSizeOfGate, initially_added: bool) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcessingGate` is never constructed
[INFO] [stdout]    --> src/run_circuit.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | struct ProcessingGate {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParentIdAndGate` is never constructed
[INFO] [stdout]    --> src/run_circuit.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct ParentIdAndGate {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadPoolLists` is never constructed
[INFO] [stdout]    --> src/run_circuit.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub struct ThreadPoolLists {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/run_circuit.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl ThreadPoolLists {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 162 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RunCircuitThreadPool` is never constructed
[INFO] [stdout]    --> src/run_circuit.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct RunCircuitThreadPool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueueElement` is never constructed
[INFO] [stdout]    --> src/run_circuit.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct QueueElement {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/run_circuit.rs:213:12
[INFO] [stdout]      |
[INFO] [stdout]  212 | impl RunCircuitThreadPool {
[INFO] [stdout]      | ------------------------- associated items in this implementation
[INFO] [stdout]  213 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  833 |     fn update_propagate_signal(&mut self, propagate_signal: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  840 |     fn update_parent_gate(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  935 |     fn internal_shutdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  947 |     pub fn shutdown(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  955 |     pub fn complete_queue(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  968 |     pub fn join(&mut self) -> bool {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  988 |     pub fn add_to_queue(
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1001 |     pub fn get_input_gate_outputs(&self) -> Vec<(String, Vec<GateOutputState>)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1007 |     fn add_to_queue_internal(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_circuit_multi_thread` is never used
[INFO] [stdout]     --> src/run_circuit.rs:1239:8
[INFO] [stdout]      |
[INFO] [stdout] 1239 | pub fn run_circuit_multi_thread<F>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingMutexGuard` is never constructed
[INFO] [stdout]  --> src/shared_mutex.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LoggingMutexGuard<'a, T: ?Sized> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `take_guard` are never used
[INFO] [stdout]   --> src/shared_mutex.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<'a, T: ?Sized> LoggingMutexGuard<'a, T> {
[INFO] [stdout]    | -------------------------------------------- associated items in this implementation
[INFO] [stdout] 11 |     // Constructor for the custom guard
[INFO] [stdout] 12 |     fn new(id: i32, guard: MutexGuard<'a, T>) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn take_guard(&mut self) -> MutexGuard<'a, T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingMutex` is never constructed
[INFO] [stdout]   --> src/shared_mutex.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct LoggingMutex<T: ?Sized> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `lock` are never used
[INFO] [stdout]   --> src/shared_mutex.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<T: ?Sized> LoggingMutex<T> {
[INFO] [stdout]    | ------------------------------- associated items in this implementation
[INFO] [stdout] 48 |     // Constructor for the custom mutex
[INFO] [stdout] 49 |     pub fn new(id: i32, data: T) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<T>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:132:36
[INFO] [stdout]     |
[INFO] [stdout] 132 |         println!("RAM_TIME: {:?}", RAM_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:133:48
[INFO] [stdout]     |
[INFO] [stdout] 133 |         println!("CONTROL_SECTION_TIME: {:?}", CONTROL_SECTION_TIME);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:134:36
[INFO] [stdout]     |
[INFO] [stdout] 134 |         println!("ALU_TIME: {:?}", ALU_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]  --> src/globals.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         CLOCK_TICK_NUMBER.clone()
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/shared_mutex.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<T>> {
[INFO] [stdout]    |                 ^^^^^                ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `logical_cpu` (bin "logical_cpu") due to 4 previous errors; 31 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `signal_clone`
[INFO] [stdout]    --> src/run_circuit.rs:958:9
[INFO] [stdout]     |
[INFO] [stdout] 958 |         signal_clone: &mut Arc<CondvarWrapper>,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signal_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/run_circuit.rs:1253:13
[INFO] [stdout]      |
[INFO] [stdout] 1253 |         let mut mutable_input_gate = input_gate.lock().unwrap();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_gate`
[INFO] [stdout]     --> src/run_circuit.rs:2363:25
[INFO] [stdout]      |
[INFO] [stdout] 2363 |                     for output_gate in output_gates {
[INFO] [stdout]      |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutex_guard_first`
[INFO] [stdout]     --> src/run_circuit.rs:2522:17
[INFO] [stdout]      |
[INFO] [stdout] 2522 |             let mutex_guard_first = clone_two_two.lock();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex_guard_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutex_guard_second`
[INFO] [stdout]     --> src/run_circuit.rs:2526:17
[INFO] [stdout]      |
[INFO] [stdout] 2526 |             let mutex_guard_second = clone_one_two.lock();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex_guard_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutex_guard_first`
[INFO] [stdout]     --> src/run_circuit.rs:2502:17
[INFO] [stdout]      |
[INFO] [stdout] 2502 |             let mutex_guard_first = clone_one_one.lock();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex_guard_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutex_guard_second`
[INFO] [stdout]     --> src/run_circuit.rs:2506:17
[INFO] [stdout]      |
[INFO] [stdout] 2506 |             let mutex_guard_second = clone_two_one.lock();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex_guard_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/shared_mutex.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn new_used_mutex<T>(id: i32, data: T) -> UsedMutex<T> {
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_large_gate` is never used
[INFO] [stdout]     --> src/run_circuit.rs:2232:8
[INFO] [stdout]      |
[INFO] [stdout] 2232 |     fn create_large_gate() -> (usize, SharedMutex<VariableBitMemoryCell>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `oscillation_multi_thread` is never used
[INFO] [stdout]     --> src/run_circuit.rs:2402:12
[INFO] [stdout]      |
[INFO] [stdout] 2402 |         fn oscillation_multi_thread() {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingMutexGuard` is never constructed
[INFO] [stdout]  --> src/shared_mutex.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LoggingMutexGuard<'a, T: ?Sized> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `take_guard` are never used
[INFO] [stdout]   --> src/shared_mutex.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<'a, T: ?Sized> LoggingMutexGuard<'a, T> {
[INFO] [stdout]    | -------------------------------------------- associated items in this implementation
[INFO] [stdout] 11 |     // Constructor for the custom guard
[INFO] [stdout] 12 |     fn new(id: i32, guard: MutexGuard<'a, T>) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn take_guard(&mut self) -> MutexGuard<'a, T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingMutex` is never constructed
[INFO] [stdout]   --> src/shared_mutex.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct LoggingMutex<T: ?Sized> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `lock` are never used
[INFO] [stdout]   --> src/shared_mutex.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<T: ?Sized> LoggingMutex<T> {
[INFO] [stdout]    | ------------------------------- associated items in this implementation
[INFO] [stdout] 48 |     // Constructor for the custom mutex
[INFO] [stdout] 49 |     pub fn new(id: i32, data: T) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<T>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:132:36
[INFO] [stdout]     |
[INFO] [stdout] 132 |         println!("RAM_TIME: {:?}", RAM_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:133:48
[INFO] [stdout]     |
[INFO] [stdout] 133 |         println!("CONTROL_SECTION_TIME: {:?}", CONTROL_SECTION_TIME);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:134:36
[INFO] [stdout]     |
[INFO] [stdout] 134 |         println!("ALU_TIME: {:?}", ALU_TIME);
[INFO] [stdout]     |                                    ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]  --> src/globals.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         CLOCK_TICK_NUMBER.clone()
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/shared_mutex.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<T>> {
[INFO] [stdout]    |                 ^^^^^                ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn lock(&self) -> LockResult<LoggingMutexGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `logical_cpu` (bin "logical_cpu" test) due to 4 previous errors; 18 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6", kill_on_drop: false }`
[INFO] [stdout] 1ef20a95eb740af87dbb6e1780bb0e74ceec399db8e16f1c009362670cf319f6
